package com.dudu.service.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import net.sf.json.JSONObject;

import org.springframework.beans.BeanUtils;

import com.dudu.bean.ParamBean;
import com.dudu.bean.SignCodeBean;
import com.dudu.bean.SmsTemplateBean;
import com.dudu.dao.SmsSignCodeDao;
import com.dudu.dao.SmsTemplateDao;
import com.dudu.model.Signcode;
import com.dudu.model.SmsTemplate;
import com.dudu.service.ISmsContentService;

import core.CoreDao;
import core.CoreDaoInvoke;
import core.util.DateUtil;
/**
 * 百悟短信签 名、模板管理 
 * @author gaoxs
 *
 */
public class SmsContentServiceImpl implements ISmsContentService {
	// 用于数据库连接
	private CoreDao coreDao = CoreDaoInvoke.getInstance();
	private SmsSignCodeDao smsdao=new SmsSignCodeDao();
	private SmsTemplateDao smsTemplatedao=new SmsTemplateDao();
	/**
	 * ajax 下拉菜单 查询签 名
	 * @return
	 */
	public List<ParamBean> querySignCode(){
		List<ParamBean> resultlist=new ArrayList<ParamBean>();
		List<Signcode> list=smsdao.queryAll(coreDao);
		if(null==list)
			return null;
		for(Signcode code:list){
			ParamBean bean=new ParamBean();
			bean.setId(code.getSigncode());
			bean.setText(code.getSigncode());
			resultlist.add(bean);
		}
		return resultlist;
	}
	/**
	 * 查询条数（分页用）
	 * @param paramSql
	 * @return
	 */
	public Integer getTotalAcount(String paramSql){
		return smsdao.getTotalAcount(coreDao,paramSql);
	}
	/**
	 * 查询数据（分页）
	 * @param paramSql
	 * @param pageSql
	 * @return
	 */
	public List<JSONObject> queryAll(String paramSql,String pageSql){
		List<JSONObject> list=smsdao.queryAll(coreDao,paramSql,pageSql);
		if(null==list){
			return list;
		}
		for(JSONObject object:list){
			JSONObject create_time=object.getJSONObject("create_time");
			Long time=create_time.getLong("time");
			Date cDate=new Date(time);
			object.put("create_time", DateUtil.parseDate(cDate));
		}
		return list;
	}
	/**
	 * 新增签 名
	 * @param bean
	 * @return
	 */
	public int doinsertSignCode(SignCodeBean bean){
		Signcode signcodeBean=smsdao.query(coreDao, bean.getSigncode());
		if(null!=signcodeBean){
			return -1;
		}
		return smsdao.insert(coreDao,conversion(bean));
	}
	/**
	 * 查询签 名
	 * @param id
	 * @return
	 */
	public SignCodeBean getBeanById(Integer id){
		Signcode signcodeBean=smsdao.query(coreDao, id);
		if(null==signcodeBean)
			return null;
		return conversion(signcodeBean);
	}
	/**
	 * 修改签 名
	 * @param bean
	 * @return
	 */
	public int doEditSignCode(SignCodeBean bean){
		return smsdao.update(coreDao, conversion(bean));
	}
	/**
	 * 转化
	 * @param bean
	 * @return
	 */
	private SignCodeBean conversion(Signcode bean){
		SignCodeBean copyBean=new SignCodeBean();
		BeanUtils.copyProperties(bean, copyBean);//源,目的
		//PropertyUtils.copyProperties(dest, orig);//目的,源
		return copyBean;
	}
	/**
	 * 转化
	 * @param menuBean
	 * @return
	 */
	private Signcode conversion(SignCodeBean bean){
		Signcode copyBean=new Signcode();
		BeanUtils.copyProperties(bean,copyBean);//源,目的
		//PropertyUtils.copyProperties(dest, orig);//目的,源
		return copyBean;
	}
	
	/**
	 * ajax 下拉菜单 查询模板
	 * @return
	 */
	public List<ParamBean> queryTemplate(){
		List<ParamBean> resultlist=new ArrayList<ParamBean>();
		List<SmsTemplate> list=smsTemplatedao.queryAll(coreDao);
		if(null==list)
			return null;
		for(SmsTemplate code:list){
			ParamBean bean=new ParamBean();
			bean.setId(code.getTemplate_code());
			bean.setText(code.getTemplate_name());
			resultlist.add(bean);
		}
		return resultlist;
	}
	/**
	 * 查询条数（分页用）
	 * @param paramSql
	 * @return
	 */
	public Integer getTotalAcountTemplate(String paramSql){
		return smsTemplatedao.getTotalAcount(coreDao,paramSql);
	}
	/**
	 * 查询数据（分页）
	 * @param paramSql
	 * @param pageSql
	 * @return
	 */
	public List<JSONObject> queryAllTemplate(String paramSql,String pageSql){
		List<JSONObject> list=smsTemplatedao.queryAll(coreDao,paramSql,pageSql);
		if(null==list){
			return list;
		}
		for(JSONObject object:list){
			JSONObject create_time=object.getJSONObject("create_time");
			Long time=create_time.getLong("time");
			Date cDate=new Date(time);
			object.put("create_time", DateUtil.parseDate(cDate));
		}
		return list;
	}
	/**
	 * 新增模板
	 * @param bean
	 * @return
	 */
	public int doinsertTemplate(SmsTemplateBean bean){
		SmsTemplate smsBean=smsTemplatedao.query(coreDao, bean.getTemplate_code());
		if(null!=smsBean){
			return -1;
		}
		return smsTemplatedao.insert(coreDao,conversion(bean));
	}
	/**
	 * 获取模板
	 * @param id
	 * @return
	 */
	public SmsTemplateBean getBeanByTemplateId(Integer id) {
		SmsTemplate smsBean=smsTemplatedao.query(coreDao, id);
		if(null==smsBean)
			return null;
		return conversion(smsBean);
	}
	/**
	 * 修改模板
	 * @param bean
	 * @return
	 */
	public int doEditTemplate(SmsTemplateBean bean){
		return smsTemplatedao.update(coreDao,conversion(bean));
	}
	
	/**
	 * 转化
	 * @param bean
	 * @return
	 */
	private SmsTemplateBean conversion(SmsTemplate bean){
		SmsTemplateBean copyBean=new SmsTemplateBean();
		BeanUtils.copyProperties(bean, copyBean);//源,目的
		//PropertyUtils.copyProperties(dest, orig);//目的,源
		return copyBean;
	}
	/**
	 * 转化
	 * @param menuBean
	 * @return
	 */
	private SmsTemplate conversion(SmsTemplateBean bean){
		SmsTemplate copyBean=new SmsTemplate();
		BeanUtils.copyProperties(bean,copyBean);//源,目的
		//PropertyUtils.copyProperties(dest, orig);//目的,源
		return copyBean;
	}
	
}
